package com.file_.fileinput_;

import java.io.FileInputStream;
import java.io.IOException;

/* 使用FileInputStream的read(byte[] b)方法，
   从hello.txt文件一次性读取多个字节的数据，并将文件内容显示到控制台
*/
public class Demo3 {
    public static void main(String[] args) {
        String filePath = "D:\\A_Test\\hello.txt";
        FileInputStream fileInputStream = null;
        int readLen = 0;
        byte[] buf = new byte[8];  // 字节数组，用于一次读取8个字节的数据

        try {
            // 1、创建FileInputStream对象，用于读取文件
            fileInputStream = new FileInputStream(filePath);
            // 2、使用read(byte[] b)方法从该输入流读取最多b.length长度字节的数据，
            // 如果返回-1，表示读取完毕，
            // 如果读取正常，返回实际读取的字节数。
            while ((readLen = fileInputStream.read(buf)) != -1) {
                System.out.print(new String(buf, 0, readLen));  // 使用String转化成字符串显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭文件流，释放资源，避免占用系统资源
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
